#include "Pesquisa.h"

Pesquisa::Pesquisa(){}

Pesquisa::~Pesquisa(){}

Doenca Pesquisa::pesquisarDoenca(list <Doenca> &l, Doenca &doe){
	int opcao;
	list <Doenca> :: iterator it = l.begin();
	cout << "Digite:" << endl << "(1) Para pesquisar por descrição\n (2) Para pesquisar por sintoma\n (3) Para pesquisar por consequência" << endl;
	cin >> opcao;
	cout << endl << endl;
	if(opcao==1){
		cout << "Descrição: ";
		cin >> parametroString;
		while( it!=l.end() ){
			if((*it).getDescricao()==parametroString)
				return (*it);
			it++;
		}
		cout << "Doença não encontrada" << endl;
	}
	if(opcao==2){
		cout << "Sintoma: ";
		cin >> parametroString;
		while( it!=l.end() ){
			if((*it).getSintoma()==parametroString)
				return (*it);
			it++;
		}
		cout << "Doença não encontrada" << endl;
	}
	if(opcao==3){
		cout << "Consequência : ";
		cin >> parametroString;
		while( it!=l.end() ){
			if((*it).getConseq()==parametroString)
				return (*it);
			it++;
		}
		cout << "Doença não encontrada" << endl;
	}
	return doe;
}

Vacina Pesquisa::pesquisarVacina(list <Vacina> &l, Vacina &va){
	int opcao;
	list <Vacina> :: iterator it = l.begin();
	cout << "Digite: " << endl << "(1) Para pesquisar por descrição\n (2) Para pesquisar por idade\n (3) Para pesquisar por preço" << endl 	;
	cin >> opcao;
	switch(opcao){
		case 1:		cout << "Descrição: ";
					cin >> parametroString;
					while( it!=l.end() ){
						if((*it).getDescricao()==parametroString)
							return (*it);
						it++;
					}
					cout << "Vacina não encontrada" << endl;
					break;
		
		case 2:		cout << "Idade: ";
					cin >> parametroInt;
					while( it!=l.end() ){
						if((*it).getIdade()==parametroInt)
							return (*it);
						it++;
					}
					cout << "Vacina não encontrada" << endl;
					break;
					
		case 3:		cout << "Preço: ";
					cin >> parametroDouble;
					while( it!=l.end() ){
						if((*it).getPreco()==parametroDouble)
							return (*it);
						it++;
					}
					cout << "Vacina não encontrada" << endl;
					break;
					
		default: 	cout << "Opção inválida" << endl;		
					break;
	}
	return va;
}
